#include <cstdio>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
int n;
const int MAXN=120050;
int a[MAXN];
int vis[MAXN];
long long p[]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648

};
map<long long,long long> mp;
int main(void){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        mp[a[i]]++;
    }
    sort(a,a+n);
    for(int i=0;i<n;i++){
        if(vis[i]){
            continue;
        }
        for(int j=31;j>=0;j--){
            int t=p[j]-a[i];
            if(mp[t]>0){
                //find
                if(t==a[i]){
                    if(mp[t]!=1){
                        vis[i]=1;
                    }
                }
                else{
                    vis[i]=1;
                }
            }
        }
    }
    int ans=0;
    for(int i=0;i<n;i++){
        if(vis[i]==0){
            //printf("%d\n",i);
            ans++;
        }
    }
    printf("%d\n",ans);
    return 0;
}
